package capillary;

import java.math.BigInteger;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

public class Solution3 {

	public static void main(String[] args) {
		// triangular number
		Scanner s = new Scanner(System.in);
		// List<BigInteger> tNums = new LinkedList<BigInteger>();
		// BigInteger i = new BigInteger("1");

		BigInteger one = new BigInteger("1");
		BigInteger two = new BigInteger("2");
		BigInteger max = new BigInteger("1000000000000");// 10000000000000

		List<BigInteger> tNums = new LinkedList<BigInteger>();
		BigInteger i = new BigInteger("0");
		while (true) {
			BigInteger num = i.add(one).multiply(i).divide(two);
			if (num.compareTo(max) < 1) {
				tNums.add(num);
			} else {
				break;
			}
			i = i.add(one);
		}

		int t = s.nextInt();
		while (t-- > 0) {
			BigInteger L = s.nextBigInteger();
			BigInteger R = s.nextBigInteger();

			// List<BigInteger> tNums = new LinkedList<BigInteger>();
			// BigInteger i = new BigInteger("1");
			// while(true) {
			// BigInteger num = i.add(one).multiply(i).divide(two);
			// if(num.compareTo(R) < 1) {
			// tNums.add(num);
			// } else {
			// break;
			// }
			// i = i.add(one);
			// }

			int count = 0;
			// BigInteger sum = L;
			// while(sum.compareTo(R) < 1) {
			// //System.out.println("loop sum" + sum);
			// for (BigInteger j : tNums) {
			// //System.out.println("sum=" + sum + " j=" + j);
			// if(j.compareTo(sum.divide(two)) == 1) {
			// break;
			// }
			// if(tNums.contains(sum.subtract(j))) {
			// //System.out.println("sum=" + sum + " j=" + j + "added");
			// count++;
			// }
			// }
			// sum = sum.add(one);
			// }

			BigInteger halfR = R.divide(two);
			// System.out.println("loop sum" + sum);

			for (BigInteger j : tNums) {
				// System.out.println("sum=" + sum + " j=" + j);

				if (j.compareTo(halfR) == 1) {
					break;
				}

				for (BigInteger sum = L; sum.compareTo(R) < 1; sum = sum
						.add(one)) {
					if (tNums.contains(sum.subtract(j))) {
						// System.out.println("sum=" + sum + " j=" + j +
						// "added");
						count++;
					}
				}
			}


			
			
			// for (sum = L; sum.compareTo(R) < 1; sum = L.add(one)) {
			// System.out.println("loop sum" + sum);
			// for (BigInteger j : tNums) {
			// System.out.println("sum=" + sum + " j=" + j);
			// if(j.divide(two).compareTo(sum) == 1) {
			// break;
			// }
			// if(tNums.contains(sum.subtract(j))) {
			// System.out.println("sum=" + sum + " j=" + j + "added");
			// count++;
			// }
			// }
			// }
			System.out.println(count);
		}
		s.close();
	}
}
